库
C 库
C 语言库
C++ 库被组织在 C 语言库相同结构的头文件中,并包括了相同的定义,但有以下的不同之处 :
- 每个头文件的名字和 C 语言版本一样,但是多了 “c“ 前缀。例如,C++ 头文件 <cstdlib> 等价于 C 语言头文件 <stdlib.h>。
- 库中所有元素都被定义在了 std 命名空间中了。
虽然这样,但为了兼容 C,传统头文件 name.h (比如 stdlib.h ) 在全局作用域中同样提供了定义。这个手册中所有的例子就是使用这个版本,所以这些例子是完全与 C 兼容的,即使它在 C++ 中被废弃了。
在 C++ 的实现中当然也有某些特定的改变:
- wchar_t,char16_t,char32_t 和 bool 是 C++ 中的基本类型,因此,它们没有被定义在 C 语言中应该出现的头文件中。<iso646.h> 中的宏也一样,成了 C++ 中的关键字。
- 下面这些函数的参数常量性定义有所改变:strchr,strpbrk,strrchr,strstr,memchr。
- 头文件 <cstdlib> 中的函数 atexit,exit 和 abort,在 C++ 中增加了行为。
- 提供了一些重载版本的函数,使用额外的类型作为参数,但有相同的语义,例如,在头文件 <cmath> 中的的 flot 和 long double 版本的函数,long 版本的 abs 和 div。
注解版本
C++ 98 包括了 1990 ISO C 标准和它的修正案 #1 (ISO/IEC 9899:1990 和 ISO/IEC 9899:1990/DAM 1) 描述的 C 库。
C++ 11 包括了 1990 ISO C 标准和它的 Technical Corrigenda 1,2,3 (ISO/IEC 9899:1999 和 ISO/IEC 9899:1999/Cor.1,2,3) 描述的 C 库,加上 <cuchar> (ISO/IEC 19769:2004)。
头文件 C90 (C++98)
头文件 | 描述 |
---|---|
<cassert> (assert.h) | C 诊断库 |
<cctype> (ctype.h) | 字符处理函数 (头文件) |
<cerrno> (errno.h) | C 错误 (头文件) |
<cfenv> (fenv.h) | 浮点环境 (头文件) |
<cfloat> (float.h) | 浮点类型特性 (头文件) |
<cinttypes> (inttypes.h) | C 整数类型 (头文件) |
<ciso646> (iso646.h) | ISO 646 可选操作符拼写 (头文件) |
<climits> (limits.h) | 整数类型的大小 (头文件) |
<clocale> (locale.h) | C 本地化库 (头文件) |
<cmath> (math.h) | C 数学库 (头文件) |
<csetjmp> (setjmp.h) | 非局部跳转 (头文件) |
<csignal> (signal.h) | 处理信号的 C 库 (头文件) |
<cstdarg> (stdarg.h) | 可变数量参数处理 (头文件) |
<cstddef> (stddef.h) | C 标准定义 (头文件) |
<cstdio> (stdio.h) | 操作输入/输出的 C 库 (头文件) |
<cstdlib> (stdlib.h) | C 标准通用工具库 (头文件) |
<cstring> (string.h) | C 字符串 (头文件) |
<ctime> (time.h) | C 时间库 (头文件) |
ISO-C 90 修正案 1 添加了两个额外的头文件:<cwchar> 和 <cwctype>。
头文件 C99 (C++11)
头文件 | 描述 |
---|---|
<cstdbool> (stdbol.h) | 布尔类型 (头文件) |
<cstdint> (stdint.h) | 整数类型 (头文件) |
<ctgmath> (tgmath.h) | 类型泛化的数学 (头文件) |
<cuchar> (uchar.h) | Unicode 字符 (头文件) |
<cwchar> (wchar.h) | 宽字符 (头文件) |
<cwctype> (wctype.h) | 宽字符类型 (头文件) |
当前内容版权归 chrisniael 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 chrisniael .